﻿using System;

public static class AcosLookupTable
{
	public static readonly int COUNT;

	public static readonly int HALF_COUNT;

	public static readonly int[] table;

	static AcosLookupTable()
	{
		AcosLookupTable.COUNT = 1024;
		AcosLookupTable.HALF_COUNT = AcosLookupTable.COUNT >> 1;
		AcosLookupTable.table = new int[]
		{
			31416,
			30791,
			30532,
			30333,
			30165,
			30017,
			29883,
			29760,
			29646,
			29538,
			29436,
			29339,
			29247,
			29158,
			29072,
			28989,
			28909,
			28832,
			28756,
			28683,
			28612,
			28542,
			28474,
			28407,
			28342,
			28278,
			28215,
			28154,
			28093,
			28034,
			27976,
			27918,
			27862,
			27806,
			27751,
			27697,
			27644,
			27591,
			27539,
			27488,
			27437,
			27387,
			27337,
			27288,
			27240,
			27192,
			27145,
			27098,
			27051,
			27005,
			26960,
			26915,
			26870,
			26826,
			26782,
			26738,
			26695,
			26652,
			26610,
			26568,
			26526,
			26485,
			26444,
			26403,
			26362,
			26322,
			26282,
			26243,
			26203,
			26164,
			26125,
			26087,
			26048,
			26010,
			25973,
			25935,
			25898,
			25860,
			25823,
			25787,
			25750,
			25714,
			25678,
			25642,
			25606,
			25571,
			25536,
			25500,
			25466,
			25431,
			25396,
			25362,
			25328,
			25293,
			25260,
			25226,
			25192,
			25159,
			25126,
			25092,
			25059,
			25027,
			24994,
			24961,
			24929,
			24897,
			24865,
			24833,
			24801,
			24769,
			24737,
			24706,
			24675,
			24643,
			24612,
			24581,
			24550,
			24520,
			24489,
			24459,
			24428,
			24398,
			24368,
			24337,
			24308,
			24278,
			24248,
			24218,
			24189,
			24159,
			24130,
			24100,
			24071,
			24042,
			24013,
			23984,
			23955,
			23927,
			23898,
			23869,
			23841,
			23813,
			23784,
			23756,
			23728,
			23700,
			23672,
			23644,
			23616,
			23589,
			23561,
			23533,
			23506,
			23478,
			23451,
			23424,
			23397,
			23369,
			23342,
			23315,
			23288,
			23262,
			23235,
			23208,
			23181,
			23155,
			23128,
			23102,
			23075,
			23049,
			23023,
			22997,
			22970,
			22944,
			22918,
			22892,
			22866,
			22840,
			22815,
			22789,
			22763,
			22738,
			22712,
			22687,
			22661,
			22636,
			22610,
			22585,
			22560,
			22535,
			22509,
			22484,
			22459,
			22434,
			22409,
			22384,
			22360,
			22335,
			22310,
			22285,
			22261,
			22236,
			22212,
			22187,
			22163,
			22138,
			22114,
			22089,
			22065,
			22041,
			22017,
			21992,
			21968,
			21944,
			21920,
			21896,
			21872,
			21848,
			21824,
			21801,
			21777,
			21753,
			21729,
			21706,
			21682,
			21658,
			21635,
			21611,
			21588,
			21564,
			21541,
			21518,
			21494,
			21471,
			21448,
			21424,
			21401,
			21378,
			21355,
			21332,
			21309,
			21286,
			21263,
			21240,
			21217,
			21194,
			21171,
			21148,
			21125,
			21103,
			21080,
			21057,
			21034,
			21012,
			20989,
			20967,
			20944,
			20921,
			20899,
			20876,
			20854,
			20832,
			20809,
			20787,
			20764,
			20742,
			20720,
			20698,
			20675,
			20653,
			20631,
			20609,
			20587,
			20565,
			20543,
			20520,
			20498,
			20476,
			20455,
			20433,
			20411,
			20389,
			20367,
			20345,
			20323,
			20301,
			20280,
			20258,
			20236,
			20214,
			20193,
			20171,
			20149,
			20128,
			20106,
			20085,
			20063,
			20042,
			20020,
			19999,
			19977,
			19956,
			19934,
			19913,
			19891,
			19870,
			19849,
			19827,
			19806,
			19785,
			19764,
			19742,
			19721,
			19700,
			19679,
			19658,
			19636,
			19615,
			19594,
			19573,
			19552,
			19531,
			19510,
			19489,
			19468,
			19447,
			19426,
			19405,
			19384,
			19363,
			19342,
			19321,
			19300,
			19280,
			19259,
			19238,
			19217,
			19196,
			19175,
			19155,
			19134,
			19113,
			19093,
			19072,
			19051,
			19030,
			19010,
			18989,
			18969,
			18948,
			18927,
			18907,
			18886,
			18866,
			18845,
			18825,
			18804,
			18784,
			18763,
			18743,
			18722,
			18702,
			18681,
			18661,
			18640,
			18620,
			18600,
			18579,
			18559,
			18539,
			18518,
			18498,
			18478,
			18457,
			18437,
			18417,
			18396,
			18376,
			18356,
			18336,
			18316,
			18295,
			18275,
			18255,
			18235,
			18215,
			18194,
			18174,
			18154,
			18134,
			18114,
			18094,
			18074,
			18054,
			18034,
			18013,
			17993,
			17973,
			17953,
			17933,
			17913,
			17893,
			17873,
			17853,
			17833,
			17813,
			17793,
			17773,
			17753,
			17734,
			17714,
			17694,
			17674,
			17654,
			17634,
			17614,
			17594,
			17574,
			17554,
			17535,
			17515,
			17495,
			17475,
			17455,
			17435,
			17415,
			17396,
			17376,
			17356,
			17336,
			17316,
			17297,
			17277,
			17257,
			17237,
			17218,
			17198,
			17178,
			17158,
			17139,
			17119,
			17099,
			17079,
			17060,
			17040,
			17020,
			17001,
			16981,
			16961,
			16942,
			16922,
			16902,
			16883,
			16863,
			16843,
			16824,
			16804,
			16784,
			16765,
			16745,
			16725,
			16706,
			16686,
			16666,
			16647,
			16627,
			16608,
			16588,
			16568,
			16549,
			16529,
			16510,
			16490,
			16470,
			16451,
			16431,
			16412,
			16392,
			16373,
			16353,
			16333,
			16314,
			16294,
			16275,
			16255,
			16236,
			16216,
			16196,
			16177,
			16157,
			16138,
			16118,
			16099,
			16079,
			16060,
			16040,
			16021,
			16001,
			15981,
			15962,
			15942,
			15923,
			15903,
			15884,
			15864,
			15845,
			15825,
			15806,
			15786,
			15767,
			15747,
			15727,
			15708,
			15688,
			15669,
			15649,
			15630,
			15610,
			15591,
			15571,
			15552,
			15532,
			15513,
			15493,
			15474,
			15454,
			15434,
			15415,
			15395,
			15376,
			15356,
			15337,
			15317,
			15298,
			15278,
			15259,
			15239,
			15219,
			15200,
			15180,
			15161,
			15141,
			15122,
			15102,
			15083,
			15063,
			15043,
			15024,
			15004,
			14985,
			14965,
			14946,
			14926,
			14906,
			14887,
			14867,
			14848,
			14828,
			14808,
			14789,
			14769,
			14749,
			14730,
			14710,
			14691,
			14671,
			14651,
			14632,
			14612,
			14592,
			14573,
			14553,
			14533,
			14514,
			14494,
			14474,
			14455,
			14435,
			14415,
			14396,
			14376,
			14356,
			14336,
			14317,
			14297,
			14277,
			14258,
			14238,
			14218,
			14198,
			14179,
			14159,
			14139,
			14119,
			14099,
			14080,
			14060,
			14040,
			14020,
			14000,
			13981,
			13961,
			13941,
			13921,
			13901,
			13881,
			13862,
			13842,
			13822,
			13802,
			13782,
			13762,
			13742,
			13722,
			13702,
			13682,
			13662,
			13643,
			13623,
			13603,
			13583,
			13563,
			13543,
			13523,
			13503,
			13483,
			13463,
			13443,
			13422,
			13402,
			13382,
			13362,
			13342,
			13322,
			13302,
			13282,
			13262,
			13242,
			13221,
			13201,
			13181,
			13161,
			13141,
			13121,
			13100,
			13080,
			13060,
			13040,
			13019,
			12999,
			12979,
			12959,
			12938,
			12918,
			12898,
			12877,
			12857,
			12837,
			12816,
			12796,
			12775,
			12755,
			12735,
			12714,
			12694,
			12673,
			12653,
			12632,
			12612,
			12591,
			12571,
			12550,
			12530,
			12509,
			12489,
			12468,
			12447,
			12427,
			12406,
			12385,
			12365,
			12344,
			12323,
			12303,
			12282,
			12261,
			12240,
			12220,
			12199,
			12178,
			12157,
			12136,
			12116,
			12095,
			12074,
			12053,
			12032,
			12011,
			11990,
			11969,
			11948,
			11927,
			11906,
			11885,
			11864,
			11843,
			11822,
			11801,
			11780,
			11758,
			11737,
			11716,
			11695,
			11674,
			11652,
			11631,
			11610,
			11589,
			11567,
			11546,
			11524,
			11503,
			11482,
			11460,
			11439,
			11417,
			11396,
			11374,
			11353,
			11331,
			11310,
			11288,
			11266,
			11245,
			11223,
			11202,
			11180,
			11158,
			11136,
			11115,
			11093,
			11071,
			11049,
			11027,
			11005,
			10983,
			10961,
			10939,
			10917,
			10895,
			10873,
			10851,
			10829,
			10807,
			10785,
			10763,
			10741,
			10718,
			10696,
			10674,
			10651,
			10629,
			10607,
			10584,
			10562,
			10540,
			10517,
			10495,
			10472,
			10449,
			10427,
			10404,
			10382,
			10359,
			10336,
			10313,
			10291,
			10268,
			10245,
			10222,
			10199,
			10176,
			10153,
			10130,
			10107,
			10084,
			10061,
			10038,
			10015,
			9992,
			9968,
			9945,
			9922,
			9898,
			9875,
			9852,
			9828,
			9805,
			9781,
			9758,
			9734,
			9710,
			9687,
			9663,
			9639,
			9615,
			9591,
			9568,
			9544,
			9520,
			9496,
			9472,
			9448,
			9423,
			9399,
			9375,
			9351,
			9327,
			9302,
			9278,
			9253,
			9229,
			9204,
			9180,
			9155,
			9131,
			9106,
			9081,
			9056,
			9031,
			9007,
			8982,
			8957,
			8932,
			8907,
			8881,
			8856,
			8831,
			8806,
			8780,
			8755,
			8729,
			8704,
			8678,
			8653,
			8627,
			8601,
			8575,
			8550,
			8524,
			8498,
			8472,
			8446,
			8419,
			8393,
			8367,
			8341,
			8314,
			8288,
			8261,
			8235,
			8208,
			8181,
			8154,
			8128,
			8101,
			8074,
			8047,
			8019,
			7992,
			7965,
			7938,
			7910,
			7883,
			7855,
			7827,
			7800,
			7772,
			7744,
			7716,
			7688,
			7660,
			7632,
			7603,
			7575,
			7546,
			7518,
			7489,
			7461,
			7432,
			7403,
			7374,
			7345,
			7315,
			7286,
			7257,
			7227,
			7198,
			7168,
			7138,
			7108,
			7078,
			7048,
			7018,
			6988,
			6957,
			6927,
			6896,
			6865,
			6835,
			6804,
			6773,
			6741,
			6710,
			6678,
			6647,
			6615,
			6583,
			6551,
			6519,
			6487,
			6455,
			6422,
			6389,
			6356,
			6324,
			6290,
			6257,
			6224,
			6190,
			6156,
			6122,
			6088,
			6054,
			6020,
			5985,
			5950,
			5915,
			5880,
			5845,
			5810,
			5774,
			5738,
			5702,
			5666,
			5629,
			5592,
			5556,
			5518,
			5481,
			5443,
			5406,
			5368,
			5329,
			5291,
			5252,
			5213,
			5173,
			5134,
			5094,
			5054,
			5013,
			4972,
			4931,
			4890,
			4848,
			4806,
			4764,
			4721,
			4678,
			4634,
			4590,
			4546,
			4501,
			4456,
			4411,
			4365,
			4318,
			4271,
			4224,
			4176,
			4128,
			4079,
			4029,
			3979,
			3928,
			3877,
			3825,
			3772,
			3719,
			3665,
			3610,
			3554,
			3498,
			3440,
			3382,
			3322,
			3262,
			3201,
			3138,
			3074,
			3009,
			2942,
			2874,
			2804,
			2733,
			2659,
			2584,
			2507,
			2427,
			2344,
			2258,
			2169,
			2077,
			1980,
			1878,
			1770,
			1655,
			1532,
			1399,
			1251,
			1083,
			884,
			625,
			0
		};
/*		DebugHelper.Assert(AcosLookupTable.table.Length == AcosLookupTable.COUNT + 1);*/
	}
}
